
/* $Id: stat.c 8 2009-12-27 16:54:50Z calicant $ */


#include "edilana.h"

#ifdef AMIGA
#include <libraries/dos.h>
#include <proto/dos.h>
#else
#include <time.h>
#endif


#ifdef AMIGA
/*
 *  Prende la data dal sistema. Amiga conta il tempo in numero di
 *  giorni dal 1 Gen 1978: e' percio' necessaria una conversione in
 *  data umana
 */
void DataOra (int data[])
{
int	m, d, y;
long	n, v[3];

	DateStamp((struct DateStamp *)v);

	n  = v[0] - 2251;
	y  = (4*n + 3) / 1461;
	n -= 1461*y / 4;
	y += 1984;
	m  = (5*n + 2) / 153;
	d  = n - (153*m + 2) / 5 + 1;
	m += 3;
	if (m > 12) {
		y++;
    		m-=12;
	}
	data[0] = d;
	data[1] = m;
	data[2] = y;
	data[3] = v[1] / 60;
	data[4] = v[1] % 60;
	data[5] = v[2] / TICKS_PER_SECOND;
}
#else
/*
 * Prende la data dal sistema in maniera "standard"
 */
void DataOra (int data[])
{
struct tm *tp;
long c;

	time(&c);
	tp = localtime(&c);

	data[0] = tp->tm_mday;
	data[1] = tp->tm_mon+1;
	data[2] = tp->tm_year+1900;
	data[3] = tp->tm_hour;
	data[4] = tp->tm_min;
	data[5] = tp->tm_sec;

	/* utile per la selezione casuale di un nome della lista */
	srand(time(NULL));

return;
}
#endif /* !AMIGA */

/*
 * Alcune informazioni sull'uso del programma
 */
void Statistiche (int dataEntrata[], int dataUscita[], int stat[])
{
int ore, min;

    ore = dataUscita[3] - dataEntrata[3];
	min = dataUscita[4] - dataEntrata[4];

	if (ore < 0) ore += 24;
	if (min < 0 ) {
		min += 60;
                ore--;
	}


	printStats(dataEntrata, stat, ore, min);
}
